package com.sc.nft.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.dto.AdminEcologyIncomeDTO;
import com.sc.nft.entity.req.AdminEcologyIncomeConfCollectionReq;
import com.sc.nft.entity.req.AdminEcologyIncomeConfReq;
import com.sc.nft.entity.vo.ecology.*;
import com.sc.nft.enums.ReceivedCollectionType;
import com.sc.nft.enums.UserEcologyHatchCollectionTypeRecordsEnum;

import java.util.Date;
import java.util.List;

public interface AdminEcologyNodeConfService {

    /**
     * 获取所有的生态收益配置
     * @return
     */
    AdminEcologyIncomeConfRelevanceVO getAdminIncomeConf(Long id);

    /**
     * 批量修改收益比例
     * @param list
     */
    void batchUpateIncomeScale(List<AdminEcologyIncomeDTO> list,Long id,Long hatchCollectionId);

    /**
     * 获取生态节点藏品列表
     * @return
     */
    List<AdminNodeCollectionVO> getNodeCollectionList(Long id);

    /**
     * 添加生态节点藏品
     * @param collectionId
     */
    void addNodeCollection(Long collectionId,Long id);

    /**
     * 删除生态节点藏品
     * @param collectionId
     */
    void delNodeCollection(Long collectionId,Long id);

    /**
     * 分页获取生态回收记录
     * @param collectionName
     * @param numbering
     * @param userTel
     * @param type
     * @param beginTime
     * @param endTime
     * @param mp
     */
    Page<AdminEcologyRecycleRecordsVO> ecologyRecycleRecords(String collectionName, String numbering, String userTel, ReceivedCollectionType type, String beginTime, String endTime, Page mp, UserEcologyHatchCollectionTypeRecordsEnum collectionStatus);

    /**
     * 平台权益配置列表
     * @param pageNo
     * @param pageSize
     * @param hatchCollectionId
     * @param isOpen
     * @return
     */
    IPage<AdminEcologyIncomeConfPageVO> adminIncomeConfPage(Integer pageNo, Integer pageSize, Long hatchCollectionId, Boolean isOpen);

    /**
     * 添加配置
     * @param list
     * @param hatchCollectionId
     */
    void addIncomeScale(List<AdminEcologyIncomeConfReq> list, Long hatchCollectionId,List<AdminEcologyIncomeConfCollectionReq> collectionIdList);

    /**
     *平台权益开关
     * @param id
     * @param isOpen
     */
    void button(Long id, Boolean isOpen);

    /**
     * 删除
     * @param id
     */
    void remove(Long id);
}
